Estimate degradation metrics on re-recorded signals from playback experiment at Bosque de Tlalpan, Mexico City, 2019
Explore graphically variation in degradation parameters related to abiotic factors
pca_degrad_params <- c("blur.ratio", "spectrum.blur.ratio", "envelope.correlation",
"excess.attenuation", "signal.to.noise.ratio", "cross.correlation",
"tail.to.signal.ratio", "tail.to.noise.ratio", "spectrum.correlation")
comp.cases <- complete.cases(degrad_df[, names(degrad_df) %in% pca_degrad_params])
pca <- prcomp(degrad_df[comp.cases, names(degrad_df) %in% pca_degrad_params],
scale. = TRUE)
# add to data
degrad_df$PC1 <- NA
degrad_df$PC1[comp.cases] <- pca$x[, 1]
# plot rotation values by PC
pca_rot <- as.data.frame(pca$rotation[, 1:4])
pca_rot_stck <- stack(pca_rot)
pca_rot_stck$variable <- rownames(pca_rot)
pca_rot_stck$Sign <- ifelse(pca_rot_stck$values > 0, "Positive", "Negative")
pca_rot_stck$rotation <- abs(pca_rot_stck$values)
ggplot(pca_rot_stck, aes(x = variable, y = rotation, fill = Sign)) +
geom_col() + coord_flip() + scale_fill_viridis_d(alpha = 0.7,
begin = 0.3, end = 0.8) + facet_wrap(~ind)cormat <- cor(degrad_df[, degrad_params], use = "pairwise.complete.obs")
rownames(cormat) <- colnames(cormat) <- names(degrad_params)
cols_corr <- colorRampPalette(c("white", "white", viridis(4, direction = -1)))(10)
cp <- corrplot.mixed(cormat, tl.cex = 0.7, upper.col = cols_corr,
lower.col = cols_corr, order = "hclust", lower = "number", upper = "ellipse",
tl.col = "black")# sort parameters as in clusters for cross correlation
degrad_params <- degrad_params[match(rownames(cp$corr), names(degrad_params))] SPL
Signal to noise ratio
Signal to noise ratio
Envelope correlation
Cross correlation
Spectrum correlation
Tail to noise ratio
Detection distance
Habitat attenuation coeff
Spectral blur ratio
Blur ratio
Excess attenuation
Tail to signal ratio
PC1
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "SPL"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "spectrum.correlation"
## [1] "tail.to.noise.ratio"
## [1] "detection.distance"
## [1] "habitat.attenuation.coeff"
## [1] "spectral.blur.ratio"
## [1] "blur.ratio"
## [1] "excess.attenuation"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
Session information
## R version 4.1.0 (2021-05-18)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
## LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3
##
## locale:
## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=es_CR.UTF-8 LC_COLLATE=pt_BR.UTF-8
## [5] LC_MONETARY=es_CR.UTF-8 LC_MESSAGES=pt_BR.UTF-8
## [7] LC_PAPER=es_CR.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=es_CR.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] cowplot_1.1.1 ggdist_3.2.0 brms_2.18.0 Rcpp_1.0.9
## [5] corrplot_0.92 viridis_0.6.2 viridisLite_0.4.1 tidyr_1.2.0
## [9] ggplot2_3.3.6 baRulho_1.0.7 warbleR_1.1.28 NatureSounds_1.0.4
## [13] seewave_2.2.0 tuneR_1.4.0 Rraven_1.0.14 rprojroot_2.0.3
## [17] formatR_1.12 knitr_1.40 kableExtra_1.3.4 klippy_0.0.0.9500
## [21] remotes_2.4.2
##
## loaded via a namespace (and not attached):
## [1] backports_1.4.1 systemfonts_1.0.4 plyr_1.8.7
## [4] igraph_1.3.5 splines_4.1.0 crosstalk_1.2.0
## [7] TH.data_1.1-0 rstantools_2.2.0 inline_0.3.19
## [10] digest_0.6.29 htmltools_0.5.3 fansi_1.0.3
## [13] magrittr_2.0.3 checkmate_2.1.0 RcppParallel_5.1.5
## [16] matrixStats_0.62.0 sandwich_3.0-1 xts_0.12.2
## [19] svglite_2.1.0 prettyunits_1.1.1 colorspace_2.0-3
## [22] signal_0.7-7 rvest_1.0.2 xfun_0.32
## [25] dplyr_1.0.9 callr_3.7.0 crayon_1.5.1
## [28] RCurl_1.98-1.8 jsonlite_1.8.0 lme4_1.1-30
## [31] survival_3.2-11 zoo_1.8-11 glue_1.6.2
## [34] gtable_0.3.0 emmeans_1.8.1-1 webshot_0.5.3
## [37] distributional_0.3.1 pkgbuild_1.3.1 rstan_2.21.7
## [40] abind_1.4-5 scales_1.2.1 mvtnorm_1.1-3
## [43] DBI_1.1.1 miniUI_0.1.1.1 dtw_1.22-3
## [46] xtable_1.8-4 proxy_0.4-27 stats4_4.1.0
## [49] StanHeaders_2.21.0-7 DT_0.26 htmlwidgets_1.5.4
## [52] httr_1.4.3 threejs_0.3.3 posterior_1.3.1
## [55] ellipsis_0.3.2 pkgconfig_2.0.3 loo_2.5.1
## [58] farver_2.1.1 sass_0.4.1 utf8_1.2.2
## [61] labeling_0.4.2 tidyselect_1.1.2 rlang_1.0.4
## [64] reshape2_1.4.4 later_1.3.0 munsell_0.5.0
## [67] tools_4.1.0 cli_3.3.0 generics_0.1.3
## [70] ggridges_0.5.4 evaluate_0.16 stringr_1.4.1
## [73] fastmap_1.1.0 yaml_2.3.5 processx_3.7.0
## [76] purrr_0.3.4 pbapply_1.5-0 nlme_3.1-152
## [79] projpred_2.0.2 mime_0.12 xml2_1.3.3
## [82] compiler_4.1.0 bayesplot_1.9.0 shinythemes_1.2.0
## [85] rstudioapi_0.13 gamm4_0.2-6 png_0.1-8
## [88] tibble_3.1.8 bslib_0.3.1 stringi_1.7.8
## [91] highr_0.9 ps_1.7.1 Brobdingnag_1.2-9
## [94] lattice_0.20-44 Matrix_1.5-1 nloptr_2.0.3
## [97] markdown_1.1 shinyjs_2.1.0 fftw_1.0-7
## [100] tensorA_0.36.2 vctrs_0.4.1 pillar_1.8.1
## [103] lifecycle_1.0.1 jquerylib_0.1.4 bridgesampling_1.1-2
## [106] estimability_1.4.1 bitops_1.0-7 Sim.DiffProc_4.8
## [109] httpuv_1.6.6 R6_2.5.1 promises_1.2.0.1
## [112] gridExtra_2.3 codetools_0.2-18 boot_1.3-28
## [115] colourpicker_1.2.0 MASS_7.3-54 gtools_3.9.3
## [118] assertthat_0.2.1 rjson_0.2.21 withr_2.5.0
## [121] shinystan_2.6.0 Deriv_4.1.3 multcomp_1.4-17
## [124] mgcv_1.8-36 parallel_4.1.0 grid_4.1.0
## [127] minqa_1.2.4 coda_0.19-4 rmarkdown_2.14
## [130] shiny_1.7.3 base64enc_0.1-3 dygraphs_1.1.1.6